Bookease
Overview #
BookEase is a lightweight bookkeeping app powered by the PERN stack (PostgreSQL, Express.js, React, Node.js).
Project Highlights #
Frontend #
- Language: Written in TypeScript and TSX, ensuring type safety and better developer experience.
- State Management: Utilizes Zustand for global state management.
- Data Fetching: Implements infinite loading using SWR(stale-while-revalidate) Library.
- HTTP Client: Custom Axios instance for seamless backend interaction.
- Data Visualization: Echarts is utilized for creating interactive and visually appealing statistics visualizations.
- Performance Optimization: Implemented lazy loading and code splitting to enhance performance and reduce initial load times.
Backend #
- Framework: Built with Express.js, providing a robust and flexible HTTP server framework.
- Language: Developed using TypeScript to create RESTful APIs.
- Authentication: Uses JWT for user authentication, with a custom validation middleware.
- Email Communication: Integrates Nodemailer to send emails during user signup and login, enhancing user communication and security.
Data Management #
- Database: Data is stored in a PostgreSQL database, managed through the Prisma ORM, which simplifies database interactions and migrations.
Deployment #
- CI/CD: Set up Github Action to automatically containerize and deploy the project using Docker.
- Web Server: The project is served by Nginx, which handles static file serving and reverse proxying for the backend API.
View the source code at: #
Frontend: React-Bookkeeper
Backend: React-Bookkeeper-Backend